package com.yyoo.doc.html.style;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * 样式中的数字列表类型转换为 int[] 类型
 * 如：col-widths: 2 1 2 4; 等
 *
 * @author zzy
 */
public class ArraySizeConverter extends StyleValueConverter<List<Integer>>{

    /**
     * 支持的样式列表
     */
    private static final Map<String, List<Integer>> SUPPORT_STYLES = new HashMap<>();

    static {
        // 支持的样式及其默认值
        SUPPORT_STYLES.put(StyleAttr.COL_WIDTHS,null);

    }

    @Override
    public boolean support(String styleKey) {
        return SUPPORT_STYLES.containsKey(styleKey);
    }

    @Override
    protected List<Integer> defaultValue(String styleKey) {
        return SUPPORT_STYLES.get(styleKey);
    }

    @Override
    protected List<Integer> convert(String styleValue) {

        List<Integer> colWidths = new ArrayList<>();

        String[] colStrArr = styleValue == null ? new String[0] : styleValue.split(" ");

        for (String s : colStrArr) {
            colWidths.add(Integer.parseInt(s));
        }

        return colWidths;
    }

}
